package STUDENT.LETRUNGHIEU.BASIC.STRUCTURE_PROGRAMMING_EXCERCISES;

import java.util.Scanner;

public class Excercise_2 {

	public static void myPrint(String content) {
		System.out.println(content);
	}

	public static void main(String[] args) {

		boolean flag = true;
		double numberOne = 0, numberTwo = 0, result = 0;
		String strValue;
		String calculator;

		do {

			Scanner sc = new Scanner(System.in);

			do {
				myPrint("Nhập vào số thứ nhất: ");
				strValue = sc.nextLine();
				if (strValue.isEmpty()) {
					myPrint("Bạn chưa nhập vào số thứ nhất: ");
				} else {
					numberOne = Integer.parseInt(strValue);
				}
			} while (strValue.isEmpty());
			
			do {
				myPrint("Nhập vào phép toán cần thực hiện: ");
				calculator = sc.nextLine();
				if (calculator.isEmpty()) {
					myPrint("Bạn chưa nhập vào phép toán cần thực hiện: ");
					myPrint("Nhập vào phép toán cần thực hiện: ");
				} else {
					break;
				}
			} while (calculator.isEmpty());

			do {
				myPrint("Nhập vào số thứ hai: ");
				strValue = sc.nextLine();
				if (strValue.isEmpty()) {
					myPrint("Bạn chưa nhập vào số thứ hai: ");
				} else {
					numberTwo = Integer.parseInt(strValue);
				}
			} while (strValue.isEmpty());

			switch (calculator) {
			case "+":
				result = numberOne + numberTwo;
				break;
			case "-":
				result = numberOne - numberTwo;
				break;
			case "*":
			case "x":
			case ".":
				result = numberOne * numberTwo;
				break;
			case ":":
			case "/":
				if (numberTwo == 0) {
					myPrint("Không thực hiện đực phép chia cho số 0");
					break;
				} else {
					result = numberOne / numberTwo;
				}
				break;
			case "%":
				if (numberTwo == 0) {
					myPrint("Không thực hiện đực phép chia cho số 0");
					break;
				} else {
					result = numberOne % numberTwo;
				}
				break;
			default:
				break;
			}
			
			System.out.printf("Kết quả: %-10.3f %s %-10.3f = %-10.3f ", numberOne, calculator, numberTwo, result);

		} while (flag == true);

	}

}
